home *** CD-ROM | disk | FTP | other *** search
Text File | 1998-10-26 | 6.1 KB | 251 lines | [TEXT/ScoM] |
- ; 2by3 trio for flute and 2 bass guitars: complete score
- ; commissioned by BBC Radio 3 for 'Another Byte'
- ; by Nigel Morgan
- ; to analyze the score double-click high-lighted keywords
-
- (create-tonality full-dim
- '(c 4 d 4 d# 4 f 4 f# 4 g# 4 a 4 b 4
- ; a b c d e f g h
- c# 4 d# 4 e 4 f# 4 g 4 a 4 a# 4))
- ; i j k l m n o
-
-
- (setq m1 '(a a -b a) ; section 1
- m2 '(= = = =)
- m3 '(b a -b)
- m4 '(b -d -c -b)
- m5 '(-d d -c b -b)
- m6 '(l k j i -c -b)
- m7 '(= a c d)
- m8 '(e f h)
- m9 '(e f h o)
- m10 '(e f h o l)
- m11 '(e f o l h m)
- codab1 '(= ap = =) ; coda
- codab2 '(= a-p = =)
- codaf '(= m = =)
- n1 '(a ae = ae) ; section 2
- n2 '(= = hl =)
- n3 '(= ae =)
- n4 '(= hl =)
- n5 '(= ae bf cg =)
- n6 '(il = = = lp)
- n7 '(b d f h o m k i)
- )
-
- (setq set1a (append m1 m2 m1 m3 ; 2/4 7/16
- m2 m1 m2 m4 ; 2/4 2/4
- m1 m3 m2 m5 ; 7/16 9/16
- m2 m4 m1 m6) ; 2/4 10/16
- )
-
- (setq set1b (append m2 m1 m2 m3
- m1 m2 m1 m4
- m2 m3 m1 m5
- m1 m4 m2 m6)
- )
-
- (setq set1c (append m2 m7 m2 m8
- m7 m2 m7 m9
- m2 m8 m7 m10
- m7 m9 m2 m11)
- )
-
- (setq set2a (append n1 n1 m1 n1 ; 2/4 2/4 ;; bass
- n2 n2 n3 n5 ; 2/4 8/16
- m7 m9 n4 n6 ; 2/4 8/16
- n2 n2 m10 n7) ; 2/4 5/16 8/16
- )
-
- (setq set2b (append n2 n2 m7 n2 ; bass
- n1 n1 n4 n6
- m2 m7 m8 m5
- n1 n1 (reverse n6) n7)
- )
-
- ;; flute material
-
- (setq set1a/b (append set1c
- (find-change
- (gen-random 0.1 (length set1a)
- '(a -b b c -c d -d e f g h))))
- )
-
- (setq set2a/b (find-change
- (gen-random 0.1 (* (length set2a) 2)
- '(b d f h o m k i)))
- )
-
- ;; dynamics : sections 1 & 2
-
- (setq v1 '(96 72 100 64)
- v2 '(0 0 0 0)
- v3 '(96 64 72)
- v3h '(0 110 0)
- v4 '(100 54 64 74)
- v5 '(110 54 64 74 110)
- v6 '(112 64 74 96 74 84)
- v7 '(32 45 54 64 74 84 94 110)
- codav '(0 127 0 0)
- )
-
- (setq vel1a (append v1 v2 v1 v3
- v2 v1 v2 v4
- v1 v3 v2 v5
- v2 v4 v1 v6)
- )
-
- (setq vel1b (append v2 v1 v2 v3
- v1 v2 v1 v4
- v2 v3 v1 v5
- v1 v4 v2 v6)
- )
-
- (setq vel2a/b (append v1 v1 v2 v1
- v1 v1 v3h v5
- v2 v1 v3h v5
- v1 v1 v5 v7)
- )
-
- (setq vel2ci (append v2 v2 v2 v1
- v2 v2 v3 v5
- v2 v2 v3 v5
- v2 v2 v5 v7)
- )
-
- (setq vel2cii (append v2 v1 v1 v2
- v2 v1 v3 v5
- v2 v1 v3 v5
- v2 v1 v5 v7)
- )
-
- ;; section 3 : with free solos
-
- (setq o1 '(a -p -b ae = = = = = = = = = = = = = -o o -b) ; 5/4
- o2 '(= -b-g = = = -d-h -d-h =) ; 2/4
- o3 '(a -b -c c b a g f e) ; 9/16
- o4 '(= = = = = il = = m l k j o m k j = = = =) ; 5/4
- o5 '(= -b b d f = = -c) ; 2/4
- o6 '(= = = = f d b -b -d) ; 9/16
- o1r (build-list '= (length o1)) ; 5/4
- o2r (build-list '= (length o2)) ; 2/4
- o7 (symbol-transpose 3 '(= e = e = = =))
- o7r (build-list '= (length o7)) ; 7/16
- )
-
- (setq set3a (append o1 o1 o1 o1 ; 5/4 5/4 5/4 5/4
- o2 o2 o2 o3 ; 2/4 2/4 2/4 9/16
- o1r o1r o4 o4 ; 5/4 5/4 5/4 5/4
- o2r o2r o5 o6 o6 o7r) ; 2/4 2/4 2/4 9/16 9/16 7/16
- )
-
- (setq set3b (append o1r o1r o4 o4
- o2r o2r o5 o6
- o1 o1 o1 o1
- o2 o2 o2 o3 (symbol-transpose 5 o3) o7r)
- )
-
- (setq set3c (append o1r o1r o4 o4
- o5 (symbol-inversion 'a o5) o2r o3
- o1r o1r o4 o4
- o5 (symbol-inversion 'c o5) o2r o3
- (symbol-transpose 3 o3) o7)
- )
-
- ;; dynamics: section 3
-
- (setq v8 (gen-repeat 5 '(74 64 84 100))
- v9 '(96 100 64 74 84 96 110 112)
- v10 '(32 42 52 62 72 82 92 102 112)
- v11 '(0 120 0 120 0 0 0)
- )
-
- (setq vel3 (append (gen-repeat 2
- (append v8 v8 v8 v8
- v9 v9 v9 v10)) v10 v11)
- )
-
- (def-tonality
- flute (activate-tonality
- (full-dim e 6) (full-dim e 6) (full-dim e 6)
- (full-dim e& 6) (full-dim e 6))
- default (activate-tonality
- (full-dim e 3) (full-dim d& 3) (full-dim e 3)
- (full-dim f 3) (full-dim e 3))
- )
-
- (def-symbol
- flute (append
- set1a/b set2a/b set1a/b ; section 1 & 2 & 1
- set3c ; section 3
- set1a/b ; section1
- codaf); coda
-
- bass1 (append
- set1a set1b set2a set2b set1a set1b ; section 1 & 2 & 1
- set3a ; section 3
- set1a set1b ; section 1
- codab1) ; coda
- bass2 (append
- set1b set1a set2b set2a set1b set1a
- set3b
- set1b set1a
- codab2)
- )
-
- (def-length
- default '(1/16)
- )
-
- (def-zone
- default (list (* (length (append set1a set1b)) 120) ; section 1
- (* (length (append set2a set2b)) 120) ; section 2
- (* (length (append set1a set1b)) 120) ; section 1
- (* (length set3a) 120) ; section 3
- (* (length (append set1a set1b)) 120) ; section 1
- (* 4 120)) ; coda
- )
-
- (def-velocity
- flute (append
- vel1b vel1a vel2ci vel2cii vel1b vel1a
- vel3
- vel1b vel1a codav)
- bass1 (append
- vel1a vel1b vel2a/b vel2a/b vel1a vel1b
- vel3
- vel1a vel1b codav)
- bass2 (append
- vel1b vel1a vel2a/b vel2a/b vel1b vel1a
- vel3
- vel1b vel1a codav)
- )
-
- (def-channel
- flute 3
- bass1 1
- bass2 2
- )
-
- (def-program gm-sound-set
- flute flute
- bass1 slap-bass-2
- bass2 slap-bass-2
- )
-
- (def-controller gm-controllers
- (flute panning '((64)))
- (bass1 panning '((16)))
- (bass2 panning '((110)))
- )
-
- (def-tempo 80)
-
- (midiport :printer)
-
- (compile-instrument-p "ccl;output:" "Another byte midi"
- flute
- bass1
- bass2
- )
-